package cn.damai.order.service;

import cn.damai.model.Order;
import cn.damai.order.model.OrderDTO;

import java.util.List;

/**
 * 订单业务类
 */
public interface OrderService {
    /**
     * 测试用
     * @return
     */
    List<Order> queryAll();

    /**
     * 订单确认,写入sql
     * @param orderDTO 订单DTO类
     * @return
     */
    Order confirmOrder(OrderDTO orderDTO);

    /**
     * 获取该用户所有订单
     * @param userId 用户id
     * @return
     */
    List<OrderDTO> orderListByUserId(Long userId);

    /**
     * 获取该订单详情
     * @param orderNo 订单编号
     * @return
     */
    OrderDTO  orderDetailByOrderNo(String orderNo);

    /**
     * 票务预售准备,未写入sql
     * @param order 订单类
     * @param areaLevel 区域值
     * @return
     */
    OrderDTO orderReady(Order order, Integer areaLevel);

    /**
     * 获取订单信息
     * @param orderNo 订单编号
     * @return
     */
    Order queryOrderByOrderNo(String orderNo);

    /**
     * 更新订单状态
     * @param order 订单类
     */
    void updateOrder(Order order);

    /**
     * 做继续支付业务
     * @param orderNo 订单编号
     * @return
     */
    Order orderInfoByOrderNo(String orderNo);

    /**
     * 订单取消
     * @param orderNo 订单编号
     * @return
     */
    boolean payCancel(String orderNo);
}
